import ast

from 程序核心代码.mvvm重构.基础定义.基础图形项.基础图形组件.节点基础图形项 import 带布局的节点基础图形项

from 程序核心代码.ast节点.节点定义.基础定义.ast节点基础定义 import ast节点基础模型
from 程序核心代码.mvvm重构.基础定义.节点管理器.自动节点注册表 import 注册节点模型, 节点模型匹配器


@注册节点模型(ast.Subscript)
class 索引操作ast节点基础模型(ast节点基础模型):

    def 节点数据解析(self):
        # 起始接口.常量值 = 起始接口._ast节点.value
        self.参数名称 = "值："
        # 起始接口.参数值 = 起始接口.常量值

    def __init__(self, ast节点, 所属节点模型管理器, 上级节点=None, 节点位置=None):
        super().__init__(ast节点, 所属节点模型管理器, "索引操作ast节点基础模型", 节点位置=节点位置, 上级节点=上级节点)


        self.图形项 = 索引操作节点图形项(self)
        #起始接口.添加接口到节点("数据流", "输出", 接口名称="数据输出", 必须连接=False)
        #起始接口.添加接口到节点("数据流", "输入", 接口名称="索引位置", 必须连接=False)
        #起始接口.添加接口到节点("数据流", "输入", 接口名称="数据输入", 必须连接=False)
        self.可迭代对象节点 = 节点模型匹配器(self._ast节点.value, self.所属节点模型管理器)
        结束接口 = self.添加接口到节点("调用流", "输入", 接口名称="可迭代对象", 必须连接=False)
        起始接口 = self.可迭代对象节点.添加接口到节点("调用流", "输出",必须连接=False)
        起始接口.接口创建连接线模型(结束接口, self)
        self.索引位置节点 = 节点模型匹配器(self._ast节点.slice, self.所属节点模型管理器)
        结束接口 = self.添加接口到节点("数据流", "输入", 接口名称="索引位置", 必须连接=False)
        起始接口 = self.索引位置节点.添加接口到节点("数据流", "输出", 接口名称="数据输出")
        起始接口.接口创建连接线模型(结束接口, self)
       # print("节点集合的最后一项是")
        for 节点 in self.所属节点模型管理器.节点模型列表:
            if 节点._是控制节点:
                self.是控制节点 = True
                break
class 索引操作节点图形项(带布局的节点基础图形项):
    def __init__(self, 节点定义, 父项=None):
        super().__init__(节点定义, 父项)
        #起始接口.节点定义.节点介绍 = 起始接口.节点定义.节点名称 + "：默认介绍"
